how to get logical reasoning for coding